A data communication environment typically includes at least two devices that are operatively coupled together through at least one network connection. By way of example, a device may include a computer and/or communicating device, and the network may include a packet switched network or the like. The device would usually include a processor that is configured to run programs (logic) including, for example, an operating system and one or more applications, etc. The processor may be considered to be running in either a kernel mode or a user mode, depending on the program(s) actively running at a given moment.
One common form of kernel mode logic is a debugging program that provides a tool for understanding how the processor and programmed logic are functioning. Such debugging often occurs during the manufacture of the device and/or programming of the device. To better understand how the device is performing, there may be a need to monitor the operation of the device at various times during which it is running in user mode. For example, it may be beneficial to periodically monitor various parameters associated with the device as it is communicates or attempts to communicate with another process or device.
In certain instances, this and other similar types of debugging may require the communication of both user mode data packets and kernel mode data packets. For devices configured with at least two physical network communication ports, this does not present a problem since one port can be configured to support the user mode related communications and another port can be configured to support the kernel mode related communications. However, there are some devices that are configured with only one physical network communication port. For example, certain World Wide Web accessing devices or appliances are configured with a single Ethernet (IEEE 802.3) or like communication port in order to reduce costs, size and/or complexity.
Typically, if a manufacture of such a device wanted to conduct debugging or other like testing, then a conventional serial or parallel data communication interface would be added/used. This may increase the cost, size and/or complexity of some devices. Such serial or parallel communication ports tend to be significantly slower than a network communication port, which may hamper the testing process. Moreover, the device may not be able to be tested in this manner once the end user has installed it, because the network communication port will likely be the only operative communication port. If testing is allowed, then the normal use of the device may be interrupted while the testing is conducted.
Consequently, there is a need for methods and apparatuses that allow kernel mode data traffic, such as, for example, debugging data packets, and user mode data traffic to share a common network communication port.